#ifndef WORKTHREAD_H
#define WORKTHREAD_H

#include <QThread>
#include <QImage>
#include "fpgaclient.h"
#include "dk200client.h"
#include "armclient.h"
#include "nvidiagpuclient.h"
#include "imagebase.h"
#include "pictureimage.h"
#include "videoimage.h"

class WorkThread: public QThread
{

    Q_OBJECT
public:
    WorkThread(QObject *parent);
    void setFileNameList(QStringList param);
    void setDirectoryName(QString param);
    void setProcessType(int param);
    void setThreadName(QString param);
    void setVideoFile(QString param);
    void setComputingPlatform(ComputingPlatform param);
    void setImageType(ImageSourceType param);
    void clearFileNameList();
    void setFlag(bool flag, int flagType);

protected:
    void run();

private:
    QStringList fileNameList;
    QString videoFile;
    QString directoryName;
    QImage image;
    IceBase *iceClient;
    ImageBase *imageBase;
    int processType;
    ImageSourceType imageType;
    bool runFlag;
    bool pauseFlag;
    QString threadName;
    ComputingPlatform cp;

public slots:
    void setFlag(bool flag, int flagType,QString threadName);


signals:
    void send_output_text(QString, QString);
};

#endif // WORKTHREAD_H
